package com.xbongbong.workflow.pojo;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * 工作流流转实体
 * @author 魏荣杰
 * @date 2021/5/10 10:10
 * @since
 * @version
 */
@Setter
@Getter
public class WorkflowTransferPOJO implements Serializable {

	private static final long serialVersionUID = -9070661154280395482L;
	/**
	 * 触发数据
	 */
	@JSONField(name="data")
	private Data data;
	/**
	 * 触发节点编辑前的数据
	 */
	private Data oldData;

	/**
	 * 获取数据节点数据
	 */
	@JSONField(name="flowDatas")
	private FlowDatas flowDatas;

	/**
	 * 当前工作流提交人的信息
	 */
	@JSONField(name="user")
	private User user;

	/**
	 * 工作流id
	 */
	private Long taskId;

	/**
	 * 公司id
	 */
	private String corpid;
	
	/**
	 * 仅后端新增更新日志使用
	 * 在nodeStart节点创建日志记录以后,存下日志id,减少后续流程节点查询
	 * logId仅有这一个, 但是logItemId有多个
	 */
	private Long logId;

	/**
	 * 是否是新建，1新建，2编辑,3删除,4：批量编辑
	 * @see com.xbongbong.workflow.enums.WorkflowOperateEnum
	 *
	 *
	 */
	private Integer operate;

	/**
	 * 是否是导入触发，1是，0否
	 */
	private Integer isImport;
	/**
	 * 备份表数据id，可能为null
	 */
	private Long backupDataId;
	/**
	 * 是否是阶段推进器触发， true是，false否
	 */
	private Boolean isFromStage = false;
	/**
	 * 工作流执行器id（父级）
	 */
	private Long parentExecutionId = 0L;
	/**
	 * 工作流执行器id（当前）
	 */
	private Long executionId;
	/**
	 * 阶段推进器跳出阶段id
	 */
	private Long fromStageId;
	/**
	 * 阶段推进器进入阶段id
	 */
	private Long toStageId;
	/**
	 * 阶段推进器流程id
	 */
	private Long stageProcessId;
	/**
	 * 链路key
	 */
	private String linkKey;
	/**
	 * 执行器类型
	 * @see com.xbongbong.pro.workflow.enums.WorkflowExecutionTypeEnum
	 */
	private Integer executionType;

	/**
	 * 是否是审批拒绝，true是，false否
	 */
	private Boolean refuseFlag;

	public WorkflowTransferPOJO() {
	}

}